#ifndef _ILISTENER_H_
#define _ILISTENER_H_

////////////////////////////////////////////////////////////
//	Filename:			IListener.h
//
//	Date Created:		8/27/2011
//	File Creator:		Steven Broyles
//
//	Last Modified:		8/27/2011	
//	Modifier Initials:	SB
//
//	Description:		This is the base interface class for
//						event listeners, allowing classes that 
//						inherit from it the functionality needed 
//						to handle events.
////////////////////////////////////////////////////////////
#include "CEvent.h"
#include "Events.h"
#include <vector>
using std::vector;

class IListener
{
public:
	IListener( void ){  }
	virtual ~IListener( void ) {  }

	vector<int> m_vRegisteredEvents;
	////////////////////////////////////////////////////////////
	//	Name:				HandleEvent
	//	Description:		A pure virtual function which must be 
	//						defined in the derived class. This function is a 
	//						blue print for how events are handled.
	//
	//	Ins:				_pcEvent
	//						
	//	
	//	Outs:				none
	//
	//	Returns:			void
	//
	//	Last Modified:		8/27/2011	
	//	Modifier Initials:	SB
	//
	//	Known Bugs:			
	////////////////////////////////////////////////////////////
	virtual void HandleEvent( CEvent* _pcEvent ) = 0;
};


#endif //_ILISTENER_H_